There are a lot of public methods here.  Consider making most of them private or splitting the class.