refactor to board superclass