added defines and stuffs