reworked with list