fix copy semantics of values when pass them to functions
fix array sementics
change syntax of templates