Final deliverable

intend to branch for refactoring