Weighted non-oscillatory (WENO) methods for solving hyperbolic conservation laws