Separate into class files.
Update with description