separated explicit methods and made copy not clone in 1d