it's confusing to me that those parameter names are exactly the same as the method names, it's the values of these methods being passed in (if I understand correctly) however shadowing method names with local variables gives me an uneasy feeling - seems easy to mess something up this way.