refactor Mod types
refactor types contd...
awaitBuilder now uses Protocol (needs cleanup)