add copy and reference realisation