Made the encoder class abstract so other classes can inherit it and overwrite the match finding process to use different algorithms.
This allows for multiple encoders (e.g. fast and optimal).