moves require module to top
uses new for slightly faster loading
massive wip