Another step fn variant