some feature improvment