moving operation handlers into their own top-level classes