implemented copy constuctor - not tested