added all files I may not have added. refactored tests