Replace begin implementation with simple macro