Remove dead assignment
Add additional type check
Add annotations to abstract methods
Fix type annotation
Fix type annotation
Add return annotation to abstract function
Annotate magic method