Fixed some input checks, fleshed out a class or two