added generic module