factor out Board and Tile classes
implement basic sliding