better 2nd tier implementation