[eluser]xwero[/eluser]
Ok i guess it's a bit too much for me to digest at once

I think you put the additional values into a function because then you can abstract it or is there another reason? Maybe you could add a method to deal with the additional values in a more intuitive way for not so smart people like me
Maybe you should add a prefix to you constants so they don't collide with previously set constants.