using default slim way to provide parameters and added a little dependency injection to provide a little more context