fill in the main method and constructor