week1 added implementations & tests