 			// update options with reference to this controller
 			options.controller = this;
 
-			// render layout
-/*			_layout = layout(options.remove('layout'), options);*/
-/*			var layout_template:String = has_layout(options.remove('layout'));
-			if (layout_template)
-			{
-				var layout_options:Hash = options.merge({ scrollRect: bounds });
-				layout = new_view(('layouts/' + layout_template), layout_options);
-			}
-*/
 			// render view/content
 			var view_bounds:Rectangle = (_layout ? _layout.bounds : bounds);
 			var view_options:Hash = options.merge({

			// show controller/layout/view stark
			visible = true;
			dispatchEvent(new Event('show_view'));
/*			content.show();*/

			// return reference to controller
			return this;
		}

		// _show({ controller: 'home', action: 'show' }, 'appear', { duration: 1 });
/*		options = new Hash({ duration: 1 }).update(options).update({ onComplete: after_hide, onCompleteParams: [ target ] });
		this[effect](target, options);
*/		public function _show (render_options:Object, effect:String, tween_options:Object = null) :void
		{
			render_options = new Hash({ controller: controller_name() }).update(render_options);
			tween_options = new Hash({ duration: 1 }).update(tween_options);

			// create new controller instance by name
			content = controller(render_options.remove('controller'));
			// invoke controller action via process method
			var action:String = render_options.remove('action');
			var f:Function = this[effect];
			content.addEventListener('show_view', function (e:Object) :void
			{
				f(content, tween_options);
			});
			content.bounds = (_layout ? _layout.bounds : bounds);
			content.process(action, render_options);
		}



			// default controller name
			if (! options.controller) options.controller = controller_name();
			ReactionController.redirect_to(options);
			if (_layout) hide(_layout);
			if (content) hide(content);
		}

		// layout('application')
