#3 
implemented the OAC model