server add copy constructors of the abstract implementations and add comments