barely finished semantic analysis