make the then function delegate to the deferreds then function to keep context - fixes #6