shallow copy function not needed atm