Broke out all the methods to separate files