working! a little buggy internally but  working