Infra for separating app and components