Rework package file structure

Everything is exactly the same, except all logical parts now has it's own file. I thought it may be easier to maintain in the future.

Tests are green.