app - use init so it can work as standalone