Flexible Endpoints

This update allows users to set endpoints via the client in the same way things like application name and client id are set.