bind() now is better type checked