wheel: cleanup implementation using templatized rise/fall impls