added optional $step param to range method