Major code overhaul

Structured the code a lot more to make implementation of other models
and the experiments easier.