moved CopyTo to base class
made CopyTo virtual
added check if destination is null.