separates hard binding functions, cleans up call and apply