Building Great APIs: Simplicity, Flexibility and TTFHW