fix: the decorator behaviour wasn't the one expected. Rewritten UTs and a lot of bugs corrected