Added more specs, better error messages; remove mass-assignments