updated for use with all modules