Finally a good solution.  Just need to do style