first commit
part 1 implemented