initial commit, implemented 4 algorithms