this methods reads well, aside from this rescue block - is there a cleaner way to do this?