decoupled application from context management