add external command support