Finished implementation and did refactoring
Ran tests, Feel like there may be some wierdness with our code (will
consult nic) however feel as though it is working soundly.