Updated and faster