Added a bunch of features and stuff