refined slightly
added a fork version