add start and done method, push version