Implement a state machine model for a button
Add COPYING