organized codes, added broadcast receiver, need implement