more work on breaking out control inversion example from api wrapping example