refactoring extension, still need to do transforms