4.3

my implementation