IMPORTANT: large restructuring of arguments and function calls. 'method' annotate and 'match' works - TESTED