finish porting to new generic Handler