|  | @@ -202,10 +202,10 @@ define(['./compatibility' /* TODO remove */], function () {
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    MethodsBrik.deps = ["composition", "selectors", "root", "selectorConversion"];
 | 
	
		
			
				|  |  | +    MethodsBrik.deps = ["behaviorProviders", "selectors", "root", "selectorConversion"];
 | 
	
		
			
				|  |  |      function MethodsBrik (brikz, st) {
 | 
	
		
			
				|  |  |          var registerSelector = brikz.selectors.registerSelector;
 | 
	
		
			
				|  |  | -        var updateMethod = brikz.composition.updateMethod;
 | 
	
		
			
				|  |  | +        var updateMethod = brikz.behaviorProviders.updateMethod;
 | 
	
		
			
				|  |  |          var SmalltalkObject = brikz.root.Object;
 | 
	
		
			
				|  |  |          var coreFns = brikz.root.coreFns;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -266,8 +266,8 @@ define(['./compatibility' /* TODO remove */], function () {
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    MethodCompositionBrik.deps = ["organize"];
 | 
	
		
			
				|  |  | -    function MethodCompositionBrik (brikz, st) {
 | 
	
		
			
				|  |  | +    BehaviorProvidersBrik.deps = ["organize"];
 | 
	
		
			
				|  |  | +    function BehaviorProvidersBrik (brikz, st) {
 | 
	
		
			
				|  |  |          var setupClassOrganization = brikz.organize.setupClassOrganization;
 | 
	
		
			
				|  |  |          var addOrganizationElement = brikz.organize.addOrganizationElement;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -297,6 +297,25 @@ define(['./compatibility' /* TODO remove */], function () {
 | 
	
		
			
				|  |  |              // This is handled by #removeCompiledMethod
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        function updateMethod (selector, traitOrBehavior) {
 | 
	
		
			
				|  |  | +            var oldMethod = traitOrBehavior.methods[selector],
 | 
	
		
			
				|  |  | +                newMethod = traitOrBehavior.localMethods[selector];
 | 
	
		
			
				|  |  | +            if (oldMethod == null && newMethod == null) {
 | 
	
		
			
				|  |  | +                console.warn("Removal of nonexistent method " + traitOrBehavior + " >> " + selector);
 | 
	
		
			
				|  |  | +                return;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (newMethod === oldMethod) return;
 | 
	
		
			
				|  |  | +            if (newMethod != null) addMethod(newMethod, traitOrBehavior);
 | 
	
		
			
				|  |  | +            else removeMethod(oldMethod, traitOrBehavior);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        this.updateMethod = updateMethod;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    MethodCompositionBrik.deps = ["behaviorProviders"];
 | 
	
		
			
				|  |  | +    function MethodCompositionBrik (brikz, st) {
 | 
	
		
			
				|  |  | +        var updateMethod = brikz.behaviorProviders.updateMethod;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          function aliased (selector, method) {
 | 
	
		
			
				|  |  |              if (method.selector === selector) return method;
 | 
	
		
			
				|  |  |              var result = st.method({
 | 
	
	
		
			
				|  | @@ -369,21 +388,6 @@ define(['./compatibility' /* TODO remove */], function () {
 | 
	
		
			
				|  |  |              });
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        // TODO move to MethodBrik once organization is fully on st side
 | 
	
		
			
				|  |  | -        function updateMethod (selector, traitOrBehavior) {
 | 
	
		
			
				|  |  | -            var oldMethod = traitOrBehavior.methods[selector],
 | 
	
		
			
				|  |  | -                newMethod = traitOrBehavior.localMethods[selector];
 | 
	
		
			
				|  |  | -            if (oldMethod == null && newMethod == null) {
 | 
	
		
			
				|  |  | -                console.warn("Removal of nonexistent method " + traitOrBehavior + " >> " + selector);
 | 
	
		
			
				|  |  | -                return;
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            if (newMethod === oldMethod) return;
 | 
	
		
			
				|  |  | -            if (newMethod != null) addMethod(newMethod, traitOrBehavior);
 | 
	
		
			
				|  |  | -            else removeMethod(oldMethod, traitOrBehavior);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        this.updateMethod = updateMethod;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          function aliasesOfSelector (selector, traitAliases) {
 | 
	
		
			
				|  |  |              if (!traitAliases) return [selector];
 | 
	
		
			
				|  |  |              var result = Object.keys(traitAliases).filter(function (aliasSelector) {
 | 
	
	
		
			
				|  | @@ -522,6 +526,7 @@ define(['./compatibility' /* TODO remove */], function () {
 | 
	
		
			
				|  |  |          brikz.selectors = SelectorsBrik;
 | 
	
		
			
				|  |  |          brikz.packages = PackagesBrik;
 | 
	
		
			
				|  |  |          brikz.composition = MethodCompositionBrik;
 | 
	
		
			
				|  |  | +        brikz.behaviorProviders = BehaviorProvidersBrik;
 | 
	
		
			
				|  |  |          brikz.behaviors = BehaviorsBrik;
 | 
	
		
			
				|  |  |          brikz.methods = MethodsBrik;
 | 
	
		
			
				|  |  |  
 |