0.4.0 abstract types