implemented object initializer