Move all character handling to character service