start alternative implementation