standard implementation -> the most common implementations