fully functional class (not distributable).