added extension factory generation