implement check out