use trait for Response