explicit defgenerics to reduce warnings