more work on two-sided generators