finished majority of code, start testing please