Adding better require system