start implementing entry/exit abstraction technique