fix lazy instantiation bug