Added many functionalites