Add interfaces and add namespace for factories