improve portability
add macros for literals copy and comparision