ifix the proportional tagging and refactor in it's own function