score calculation can be faster for integer matrices, so it's preferrabble to convert score to real value at the very end of calculation
TODO: make data models immutable
reuse best_suffix/worst_suffix in best_score/worst_score
active_support parts incorporated (so dependency removed)