There can be more than one level, use recursion