Updated so that instantiate controller returns a pointer to struct.