#2 Added abstract response handler