Implement single dispatch
Update init
Fix tests