class inheritance complete