1977 finished impl +working tests