Some refactoring of furter