try to add module mechanism