implement issue#8 part 1