data handling & threading & throwing