Non-linear difference schemes for hyperbolic equations