decuple query and use transient