Most of the methods in this file does not follow its documentation. It'll be bigger change, I would rather leave it up to you.