For vocabulary .I would suggest you a method .which exists but is not used very often .I am using it,and it's working for me .
Whenever you go out look around and find things which you don't know in English .think in your mind ,do I know this yes leave it .do I know this ,no ,write it in your native language in your mobile . and I am sure you will find at least 20 or more words in a day
When you come back home .get the meaning of those word from a dictionary. Use a talking dictionary ,listen those words and write the meaning in your native language. And then use them in your own sentencs .
After a weak you will see the result .