ready for all data at once - needs testing