working towards generation