split out method1, added option time counting function
split out method2,3, and 4