Reworked version