To Do: handle checkout