final changes as per GPL