Implementing a lot of what is needed for fayego client, still need to manage subscriptions and cleanup logging