initial module implementation