separated project into multiple files to simply and significantly improve unit test coverage
added test for copy functionality