improved character component