refactored require to handle cache, absolute, releative modules
refactor require to use relative module locations