initial methods and logic