throw if c'tor is empty