add support for interfaces