Added a bunch of functionalities