changed annotations to vec
refactor