more test
use exceptions instead of eithert