some updates, but code still out of date