Convert install model to use exceptions, modify writable check