should support internal definitions