avoid strict violation by passing rather than binding