use class instead of action for event
clean up
works, but needs cleanup
More cleanup