Self generating (learnt from yt) by Dylan