new architecture - fixes so many things \o/