A special thanks goes to @aerouk for almost all of the changes found here. By: Wesley Wolfe <weswolf@aol.com>
By: Erik Broes <erikbroes@grum.nl>
By: Nathan Adams <dinnerbone@dinnerbone.com>