add test and structor