Added many functionalities