constructor overloading with different scenarios