code in progress
few modifications