use both call and apply together to create fast, unbound wrappers