better tested character implementation