Some interface improvements, add constructors.