Fixes #1 (starting work on splitting it all up)