update: sending offline to avoid analytics.
update: refactored.