start breaking out control inversion example from api wrapping example