the app accepts parameters, so it's more extensible