using macros for proc properties
including all props except eniron ring and next
passing state as string instead as char code
adding environ