join works. added delete/edit event func