better error system.