Improvement to logging of function names.

Let me know if you have any feedback or criticism on the implementation.  

One criticism I had of my approach was whether then() and createStep() could be combined in some way.

Note I didn't get rid of _step in 100% of cases!  For instance - for the forward() and back() functions appear to accidentally have some faults:

1) they are asymmetric (one has a then function parameter, the other doesn't)

2) the then function parameter for the forward() function doesn't seem to be called

So where there were overlapping issues I did not make corrections (yet) - for the purposes of keeping commits separate.

I'm happy for all feedback on approach, variable naming, indentation - please feel free to be direct if you see something you don't like, and I will take it as constructive criticism and guidance on understanding your expectations :)

Cheers