Final Updated version