Finally, sane function constructors.