Work in Progress - reimplementing language enum

Signed off by: Fellipe Souto <fllsouto@gmail.com>
Signed off by: Rafael Manzo <rr.manzo@gmail.com>
Signed off by: Renan Fichberg <r.fichberg@gmail.com>
Language model.

PENDING: run unit tests and see if everything is okay.

signed-off-by: Renan Fichberg <rfichberg@gmail.com>
Granularity
Fixed Language
Merge branch 'language_enum'