updated external interface to better support internal plugins