I see duplicate implementations in move() and modify() methods in
ContextPartitions and Interceptors. It is because they provide
almost identical operation with two methods with different signature.
I implemented AbstractContextPartition so that users can implement
minimal number of operations to make their ContextPartition
implementation. But, what about just merging these each method
pair into just two methods as I did in AbstractContextPartition?
what we call human nature is actually human habit