public function billing()
    {
        $form = $this->BillingForm();
        
        // If we are using simple checkout, skip
        if (Checkout::config()->simple_checkout) {
            return $this->redirect($this->Link('finish'));
        }
            
        // Check permissions for guest checkout
        if (!Member::currentUserID() && !Checkout::config()->guest_checkout) {
            return $this->redirect($this->Link('index'));
        }

        // Pre populate form with member info
        if (Member::currentUserID()) {
            $form->loadDataFrom(Member::currentUser());
        }

        $this->customise(array(
            'Title'     => _t('Checkout.BillingDetails', "Billing Details"),
            'Form'      => $form
        ));

        $this->extend("onBeforeBilling");

        return $this->renderWith(array(
            'Checkout_billing',
            'Checkout',
            'Page'
        ));
    }