Preparing for some optimisations. (absolutely need to reduce the ammount of allocations done.)
Lots of work left to do!