event system is a success i guess. i might modify later