first cut at interface driven refactoring of whos