added support for interfaces