Working variant, doesn't work with zero (0) values of step