In this section, we first give an overview of the general framework of APG. Then, we state the requirements of each component and give more details about our design and implementation of these components.