refactor markup to be more semantic