removed rescue. leaves error handling by the caller