refactoring /2 -- try to finish something !!