I think it's working, going to clean it up later