if `opts` not null, then reload in npd.load