Split up Gpa into multiple classes

The current Main.js app is getting quite complicated. May split up the
js into multiple files.