pretty stable data driven solution