pass null for no interfaces
better exception message
improved handling of raw lists