generally return exceptions, working on testing