module re-write