Lots of changes based on feedback