add tags model/service, improve code readability, refactor