Changed a LOT of core methods. Consider this V2.0 :)