i think this pattern will work better