added response generation