all methods implemented. It's time to test