-improved project structure, separated demo and lib