more elegant step definition