Many cahnges added