Architecture overhaul, oh how i love OOP