Support for three level deep parent widgets

This needs some refactoring love...