implement expandable container, views and view directives