Add abstract class Vigil.

Signed-off-by: Adrien <berthet.a@gmail.com>