contributions. still need to set up state machine logic. also, styles and general de-crapifyng