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: Dinnerbone <dinnerbone@dinnerbone.com>