Combined version w/ Mike's and Nikhil's updates