Issue #175: made it a class instead of an interface