building types prior to use them is problematic and renders things less
readable. additional work needed to overcome this