Making things snap