Reworked whole structure, much cleaner