General cleanup
Rework structure