Merge changes from Vipuls fork