adapted for responsiveness