add error handling(ad-hoc)