external interface