I've added a initial draft of the class to the first post.