updated vision with ideas from Nitin