Add some optimizations for error checking
Removed unneccessary assignment
Cleaned up error handling when FF support isn't supported
Cleaned up error handling some more
Fixed remnants of previous changes