restored functional