huge restructuring, still WIP :construction_worker: