implement optional typehinted constructor arguments