button for other types as well (enum, abstract, typedef)