added more TDD and better footprint, adding more functionality, spec mostly complete.