revised once(), closes #10