Implements checkout