 		for component in self.components.values {
 			component.update(deltaTime: deltaTime)
 		}
+		
+		// call override point of update
+		self.update(deltaTime: deltaTime)
 	}
+
+	// MARK: - Override Points
+	
+	open func update(deltaTime: TimeInterval) {}
 	
 }
 


open class GameObject {
	
	fileprivate let root : RootTransform
	
	public init() {
		self.root = RootTransform()

	
	// MARK: - Update
	
	internal func _update(deltaTime: TimeInterval) {
		for child in self.children {
			child.update(deltaTime: deltaTime)
		}
