moved fork builder to public
implemented builder copy as fork()
refactored builder.build