Finalizing working abstracting out stuff, refactoring