Created by vibin, for learning and experiments.