refactor bounds