http://stackoverflow.com/a/12791674/881551 for why this exists.