Finished coding, havent tested.