some improments in features.