fully working semantic