improved errors, esp. setindex!