Breaks up class files, adds factory methods