cleaned some macros
lazy eval