WIP: Improve gem file separation

The idea is to give each class at least a file.

Pending add test to ensure that nothing is breaking.