1. handling callbacks 2. setting/getting resources 3. handling actions 4. app context