changed a lot see description

made a new champ class
reorganized how variables are passed, passed a reference and that
reference is saved so everything is cleaner at the cost of having extra
variables