added a bunch of new methods