reworked string concat