generator functionally complete