bunch of functionalities added