         super.init(nibName: nil, bundle: nil)
     }
 
-    override static func initialize() {
-        //set default appearance values, can be overriden (see example app delegate)
-        UIView.appearance(whenContainedInInstancesOf: [VeneerViewController.self]).backgroundColor = UIColor.black.withAlphaComponent(0.3)
-    }
-
     override func viewDidLoad() {
         super.viewDidLoad()
+        
+        //add views for highlights
+        highlightViews = highlights.map { HighlightView(highlight: $0) }
+        highlightViews.forEach { highlightView in
+            self.view.addSubview(highlightView)
+        }
         
         let dismissTapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(VeneerRootViewController.dismissCurrentVeneer))
         self.view.addGestureRecognizer(dismissTapGestureRecognizer)

//public view controller use to provide a UIAppearanceContainer for customisation while keeping main root view controller internal
public class VeneerViewController: UIViewController { }

class VeneerRootViewController: VeneerViewController {
    
    @available(*, unavailable, message: "init(coder:) is unavailable, use init(highlights:) instead")
    required init?(coder aDecoder: NSCoder) { fatalError() }

    override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) { fatalError() }
    
    let highlights: [Highlight]
    private var highlightViews: [HighlightView] = []
    
    required init(highlights: [Highlight]) {
        self.highlights = highlights
