starting point, needs work on language states