type extensions