just a raw solution,still a lot to do