Beefed up interface API specs, and moved more logic into the interface from adapters.