I think this will work .. still needs more testing