rewritten for use without on-screen function list but with manual function name typing instead