introduced reset function, input triple buffering, output double
fix on tx double buffering