additional types implemented