adding recursive steps