add custom refresh control and some minor change