Factoring the types module.
Moved Tile into its own module