complete. trouble with making the last error test work... meh