ex3.15 - soo many implementations of concat()