WIP, Functioning refactor, need to handle dups