Completed with subviews (before refactoring next)