Fleshed out listener classes

They should theoretically do things now (untested).