step component with tests