removed unnecessary wildcard constraints
began working on optional parameters