update with nikonorov code