added cache model with signals and tests
initial migration