 	override init() {
 		super.init()
 		
+		let querySelection	=	{ [unowned self] ()->SelectionQuery in
+			return	SelectionQuery(controller: self.owner)
+		}
 		menu.showInFinder.reaction	=	{ [unowned self] in
-			let	fn	=	self.owner.outlineView.clickedNode
-			let	sns	=	self.owner.outlineView.selectedNodes
-			
-			let	hasFocus		=	fn != nil
-			let	hasSelection	=	sns.count > 0
-			let	rootFocused		=	fn === self.repository!.root
-			let	rootSelected	=	sns.filter({ n in n === self.repository!.root }).count > 0
-			
-			let	fu	=	self.owner.clickedURL
-			let	sus	=	self.owner.selectedURLs
-			let aus =   (fu == nil ? [] : [fu!]) + sus
-			
-			NSWorkspace.sharedWorkspace().activateFileViewerSelectingURLs(aus)
+			let	q	=	querySelection()
+			NSWorkspace.sharedWorkspace().activateFileViewerSelectingURLs(q.URL.all)
+		}
+		
+		menu.newFile.reaction		=	{ [unowned self] in
+			let	q	=	querySelection()
+			q.node.hot!.createChildNodeForName("New File 1", kind: WorkspaceNodeKind.File)
+			
+//			let	i1	=	self.owner.outlineView.rowForItem(q.node.hot!)
+//			let	i2	=	q.node.hot!.children.count
+			self.owner.outlineView.reloadItem(q.node.hot!, reloadChildren: true)
+//			self.owner.outlineView.insertItemsAtIndexes(NSIndexSet(index: idx), inParent: q.node.hot!, withAnimation: NSTableViewAnimationOptions.SlideDown)
+//			self.owner.outlineView.reloadData()
+		}
+		menu.newFolder.reaction		=	{ [unowned self] in
+			let	q	=	querySelection()
+			q.node.hot!.createChildNodeForName("New Folder 1", kind: WorkspaceNodeKind.Folder)
+		}
+		menu.newFolderWithSelection.reaction	=	{ [unowned self] in
+			let	q	=	querySelection()
+
+			//	TODO:	Implement this...
+		}
+		menu.delete.reaction	=	{ [unowned self] in
+			let	q	=	querySelection()
+			
+			//	TODO:	Implement this...
+		}
+		menu.addAllUnregistredFiles.reaction	=	{ [unowned self] in
+			let	q	=	querySelection()
+
+			//	TODO:	Implement this...
+		}
+		menu.removeAllMissingFiles.reaction	=	{ [unowned self] in
+			let	q	=	querySelection()
+
+			//	TODO:	Implement this...
+		}
+		menu.note.reaction	=	{ [unowned self] in
+			let	q	=	querySelection()
+
+			//	TODO:	Implement this...
 		}
 		
 		NSNotificationCenter.defaultCenter().addObserverForName(

///	MARK:
///	MARK:	InternalController

private final class InternalController: NSObject {
	let menu			=	WorkspaceNavigationContextMenuController()
	var repository		=	nil as WorkspaceRepository?

	@availability(*,unavailable)
	override var objectValue:AnyObject? {
		willSet(v) {
			precondition(v == nil || v is WorkspaceNode, "Only `WorkspaceNode` type is acceptable.")
		}
//		get {
//			
