removed 'default' and 'new' fns, changed loops to use Options instead