improved data receiving