added a bunch of features