change :name to reader because it will not be changed after initialization