added semantic exercise