Core classes for building libs to communicate with APIs