67/70
todo list:
self
dispatch