Moved the interface to a separate class for consistency