nicer step by step and fixed function invocations