Fix semantic check issues found by the instructors

I think `override val isReadable` should work here.