filled out reshape, init, and main