interfaces used by clients