A useful testcase you could write in order to prove that your factoring is correct, is a separate integration of the UIEnhancer that just includes ONE of the above ants and does not use the defaultActions grade. If this works, and does not involve any code duplication, then your design is ok.