some ideas with on.pass and on.fail