cross fingers : major refactoring and broken code !!