completed code and testing