This includes various implememtation in python