FIXUP: rearrange decorators
FIXUP: Simplify view, add event prop