add semantic layout