convert Board API to be more general and hash-based