- reformatted using visual studio