All methods filled out and commented