Big Change

refactor, add doc..