advanced list prototype