Second commit
Multiple improvements.