initial version of gimple refactoring