only query weight once