updated functions, still returning gibberish