again nicer, faster code through generator improvements