learnt Factory