adding credit to where i found most of the info on this