added version interface and class