added a fair amount of functionality to checkout frontend