implement step limitation