Make it work compile Crystal 0.5.3, and some refactors.