update: putting it all together