1. re-organize file structure 2. support drap event