split interfaces into separate files