add function/timeout. closes #74