updating changes, adding tests