added generators and changed generator design