refactored BoardController