Tidied up extractors, and added BigInt/BigDecimal support