major redesign.. not complete but working hehehe