add some comments
call methods directly
use the proper type arguments