provide johnson fn; closes #10