Add multi level dependency solver