interface engineering