self checks in copy constryctor and assignemnt