refactor so graphics can use senderror as well