Full rework of everything