updated the whole thing
new style