add nio demo