Log error messages
Auto detect implementation
Added default option to automatically select the implementation to use based on the platform. This is done in order to retain the old behavior.