terdade: refactor, add great/grate