add purchased_at attribute and change name generation strategy