APIs and Program Design