Rewrote methods, tested as going along