optional types for defs. can be inferred.