10 patterns in successful api programs 2