Did some method caching, added some decision trees and added documentation.