apm2 Program By John Locke