implement fork utility