FINIHSED by self in about 1 h