forked from: Splouch by Grégoire Divaret