implement functional area and agent APIs