event based rewrite

small core with everything going through events
why not just var args = Array.slice(arguments)