Work in progress - added partial support for interfaces