add great interface!