WIP not sure where to take this yet
need to run some tests but looks good