Major Updates

No longer using 6299's code due to restrictions on license. Made my own.