elaborate modules correctly