Chess Game Java Design Principles