move interfaces to separate files