The current way is really glued together in a very hacky way, a more maintainable, better cacheable way exists