avoid @ use
support typedefs and abstracts too