implemented static instace constructor method