added custom module implementation