Update Changelog
Polishing the code
Merge branches 'wip' and 'master'