improved names + prepare for better reusability