improved interface for external calls