add license, fix bugs