wrong implementation.
Refactors backend.
Removes debugging codes.
Deletes language spec