cleanup, use interface for type hinting