Implemented all the functions from the Ruby library. Need to test them all