basic TileLayer functionality

still need to decide if i like the design or not