annotation now uses the (char) cast trick