Assert value-type is Reference instead of simply non-primitive
Various compiler clean-up issues resolved