try some more error handling?