# Renaissance Lifecycle
Load markup programmatically during controller initialization, by calling `-[NSBundle loadGSMarkupNamed:owner:]`. The file's `#NSOwner` reference is set [to the object you pass as the owner](/renaissance-outlets-and-actions). Call this method at the following points in your app's lifecycle:

1. To set the main menu, load markup that defines the menu after you initialize the app delegate, but before you call `NSApplicationMain`.
2. To create UI that's owned by the app delegate, load markup in your app delegate's `-applicationDidFinishLaunching:` method.
3. To create UI that's owned by a controller, for example an `NSWindowController`, load markup in the controller's `-init` method. _Don't_ call methods that load other types of view files, for example, `initWithWindowNibName:`.

When Renaissance initializes and configures the view based on the contents of the markup file, it sends every object the `-awakeFromGSMarkup` message. Override this message to perform any actions after the view is configured and before someone interacts with it. Objects might receive other methods, like `-windowDidLoad` or `-viewDidLoad`, before Renaissance configures all of their connections.

