updating and adding tests