minimizing errors and redundancies