add maybe_get func