forked and extended (c)