modify three class interface