added optional types