defining basic structure