copy and expand implemented