Adding alternative implementation