made AbstractStatus parametrized