add method option and some cleanup