Updated and fully functional