step 2 - core of app