+ add type parameter to build/buildAll method