A work in progress i think i'm on the right track