I don't understand very well how the whole mechanism works; why do we need to clone? why do we need to do things here (and it's not handled by the super class)?