added module and tests