application and factory