Привет. Разбираюсь с паттерном "Модуль" и тем как писать свои библиотеки. Не могу понять, почему созданный модулем объект не видит глобальный. Вот примерно так я создаю модули:
(function() {
	function Obj(a, b) {
		// здесь что-нибудь
	}
	
	Obj.prototype.makeSomething = function() {
		console.log(Lib);
	}
	
	function Lib() {
		// и здесь что-нибудь
	}
	
	Lib.prototype.makeObj = function() {
		return new Obj();
	}
	
	window.Lib = new Lib();
}());
Затем, с помощью уже глобального объекта Lib я создаю объекты класса Obj с помощью метода 
make. Теперь я хочу использовать метод 
makeSomething созданного объекта в котором я хочу использовать какой-нибудь метод объекта Lib. Но метод 
"makeSomething" не видит Lib, он выведет не объект а исходный код, вот так:
function Lib() {
		
}
Подскажите в чём ошибка и как правильно писать библиотеки так, чтобы можно было создавать с их помощью объекты и пользоваться методами этих библиотек? Разбирался с замыканиями но видимо ничего не понял...