renamed classes for the sake of understandability