recursive steps