Characterizations of Computably Enumerable Sets