Implemented the distinction between trigger listeners + some more FIXMEs

@mkit