Contributors:
'ericzhao28' - Eric Zhao
'patrickleet' - Patrick Scott
'mleue' - Michael Leue
