adding back algo