major changes to maintain this module