I noticed you can't promote to a Rook or a Bishop. There are however situations when you would want to do so, For example, If you had the promoted pawn protected by another piece, Another player would be more willing to sacrifice another piece to take out a queen then they would be if you promoted it to a rook or bishop.
You said you can determine whether or not a piece can move, Does this also mean it can automatically determine Checkmate/Stalemate?
P.S. I'm not a chess expert, I just ask a lot of questions.