Added a callback system...someone notify me why my func is called 2x when its not supposed to be or is called 2x