incorporate some aspects of iap