refactor payment system to use state machine and sale model, base admin interface for sales