clean api up
added more test
restructured project