* redesigned structure
* added required libraries for testing
* added test target in build file
* added some structural classes