Building Intelligent Applications