My experience shows that the best way to enhance your vocabulary is watching your favorite movies/TV shows/anime with subtitles and write out all words you don't know on paper flash cards(one side is with an English word, another side is with the translation). Then all what you need is to memorize these words by multiple repeating imagining different situations with them and the last thing is to watch that movie again where you took the words from. Movie by movie your vocabulary will get richer very quickly.