review module handle into protocol layer