make _preivous overwritable
renamed listenTo to watch and stopListeng to stopWatching, use global "use"
stack based on Base not Model
seperate events from Base