more complete controller generator