define(['store/drifter', 'store/trajectory'], function(DrifterStore, TrajectoryStore){
	var _registedStore = {
		'add-drifter': [DrifterStore.addPoint],
		'remove-drifter': [DrifterStore.removePoint],
		'clear-drifters': [DrifterStore.clear, TrajectoryStore.clean],
		'update-drifter-status': [DrifterStore.updateStatus],
		'update-all-drifters-status': [DrifterStore.updateAllStatus],
		'add-trajectory': [TrajectoryStore.addTrajectory],
		'remove-trajectory': [TrajectoryStore.removeTrajectory],
		'clear-trajectories': [TrajectoryStore.clean]
	};

	var _dispatch = function(payload){
		for(var i=0, s; s = _registedStore[payload.action][i++];)
			s.apply(this, [payload.data]);
	}

	return {
		dispatch: _dispatch
	}
});