logic and copy