work on initial setup, (#5, #21, #4, #29)