less work is done in the constructor