Initial Commit

With test cases