implemented better response object