bleh. use events properly