     
 }
 
-protocol Timer {
+//class
+protocol Timer: VisibleMediaObject {
     var valid: Bool { get }
     var fireDate: NSDate { get set }
     var interval: Double { get }

struct TextAlignment {}
struct LineBreakMode {}
		
protocol Label {
	var text: String { get set }
	var font: Font { get set }
	var adjustsToWidth: Bool { get set }

import C4iOS
import AVFoundation

protocol MediaObject: Run, Notification {
    func setup()
}

protocol VisibleMediaObject: MediaObject, Visible, Interactive, Animatable {
    
}

protocol Run {
    func run()
    func run(delay: Double)
}

protocol Notification {
    typealias NotificationClosure = (notification: NSNotification) -> ()
    
    func post(notification: String)
    func listen(notification: String, run: NotificationClosure)
    func listen(notification: String, object: AnyObject, run: NotificationClosure)
    func listen(notification: String, objects: [AnyObject], run: NotificationClosure)
    func stopListening(notification: String)
    func stopListening(notification: String, object: AnyObject)
    func stopListening(notification: String, objects: [AnyObject])
}

protocol Visible {
