use interface to replace instance