updated

completed + tested