refactor __before__, can we just remove it?