finished, just need to make small fixes