Units created as a general game object class
-- Units have a stack of actions
-- the top action decides the graphic and change of state
-- Units have abilities (abilities create actions)

The unit movement uses path finding
-- pathfinding initiated with start and end tiles
-- a star takes a lambda function to decide what is passable
-- if blocked a unit finds a new path
-- intersection tests for many units on a single tile
-- ending at the nearest reachable point when cannot reach target

Terrain object split over several classes
-- terrain object will represent a space on the terrain
-- there are square spaces and radial spaces
-- the building specific items are moved to the BuildingProducer class

Units have outlines on terrain
-- generated on startup
-- squares made using foundation size of building
-- circles made using radius of units