type declaration tricks