restructure note variety constructor