sounds like the top level could override this method