added basic forking feature