implementing overloading of initialisation