add reload method and some improvement