proper instantiate