better error reporting: all three of these methods might return an error