'timestamp' instead of 'at'
new class for distribution
refactor to remove duplicated code