major addition, but polishing still needed, not yet complete