Here is the code. Still need to not hardode things.