get rid of circular dependencies to prepare for serialization
add the round-trip promotion of pawns