add checkout func