utility functions written, tested. More test cases should be run and code should be seperated into different files, header and source files also should be seperated