Added state validation in all public methods