Copyright (c) 2014 Nathan LaFreniere and other contributors.