A generalized procedure for constructing an upwind-based TVD scheme