added character generation