removed diamond for 1.6 compatibility
added fallback error handling