concat should probably have operator sematics