Still far from perfect, I'm still figuring things out on this one