Reworked the whole framework so it actually works.