add semantic names and fix