This will not build; working on refactoring