refactor, add vecmanth ext