remainder must not be negative
don't consider diagonal neighbours, to improve performance
catch runtime exceptions save save stacktrace in decoder result, for
debugging