Proper return values and errors