Rewrote language handling to use a datum list.