refine: relay & forward