init method returns instance to allow chained instantiation