What library? I think this should be here, I could refactor and split a little bit more the methods, but I am really against of mass splitting everything. It is more difficult to follow the paths :)