U: refactor. @leoner remenber to update comment if code is modified...