extracted common interface to separate file