First Version, with extra test sample