Completed first pass implementation/refactoring... committing (does not compile)