changing std to boost shared ptr/reorganize event class