some more files
some more
refactored some code, wrote testcase for singleton