some model implementations & tests