possible conditions for constructor overloading