add spec
use exceptions and scala.util.Try instead of boolean expressions when validating updateability