modified version to current