restructures
added version and test for client