fully re-factored interface manager - much shorter now.