all userprog tests passing. need to clean up code and incorporate changes from threads branch