Removed a copy constructor since its no longer required.
Implemented move constructors and cleaned up code a little.
Did some small refactoring.