implement _save func