More updates and fine tuning thanks to feedback.