Finally updated this. It got pretty outdated