Expansion and refactor of initial structure

- Better object composition
- Operations as classes rather than loose procs
- Unit test coverage of entire stack
- Initial integration tests of currently implemented functionality
- Strict focus on only single operation mutation/translation/transposition