Too much change to detail  :)
last commit before huge refactoring