structure cleanup
add boilerplate code