added some more methods that I expect to be a little more efficient in some cases (not yet tested)