basic structure implemented (without object serialization)