simplify and use the new chain stuff