add implementation of a min heap plus tests