reorganized the class into individual files