refine #25, #26