making partitioner an abstract class