Make StatementGen a struct