add a cache layer above db
change UDPClient thread to IntentService