works with and constants updated