added model + tests