too smart -- should prob move to helper method