endnu mere clean + exception handling