Did this completely independently and didn't look at anyone's tutorials on how to do this, so any similarities to anyone else's code is a coincidence.