recursive class construction in effect. needs date logic