final version protoype