re-orgranize code and open-source it!