Unnecessary, but beautiful data containers.

Will ditch them soon after this commit.
Intermediate working version (needs MAJOR refactoring).

Messy: reworking a lot at the same time (I know this is bad).