implemented pseudo-legal moves