Revise APE to include abstract base class