first commit

there are 3 test files to test the functionality.