reimplemented <struct>.class to remove delayed conversion to sizeof