abstract refinement

abstract didn't feel…abstract enough