basic event functionality added