functional state with tests