add spawn function