added semantic logging