big refactoring

extracted interfaces, renamed, introduced services