added tags and refactor
improve style