works just need to polish now