Initial commit

Based on contribution of
Klára Jelínková, Gunther von Eisenkeil, Rubén Sluck,BRD, and Balazs
Jarosi.