Why there is an extra method if the input record is passed in constructor