clean structure for a clean use of label (now an integer named id, more explicite name) and add javadoc