extract interface to single file