update: change project structure, easier to publish