first pass at three tier approach