else throw exception?