Huge commit with new functionalities