I used a few tutorials in this one (added my own twist).