https://chatsline.com/blogs/vi....ew/30297/advanced-vi