add cast operator and fix constractor
fix forward_as_tuple
improve tuple_cat