refs #5, #3, #2, #1