a lot but not all state implementation
resolved conflicts