Done porting Vigenere

Improved class hierarchy on the run