Refactor strategies to be inheritable singleton classes