add improved collation support (broken)