finished implementation, circuit tuning is necessary