add recursive solution