added some more push/pull force control, also starting to break things up into components