for OOAD class