added lab2 version:better