It's not only ugly but restricting arguments to have only one type. Needs improvement.