application setup using callbacks