updated src and tests