lots of refactoring
todo: ChessboardView