all functions now pass.