much cleaner call method