Tested and Edited to be pretty