Add boilerplate code for #2 #3 #4 #5 #6