public static function get($state)
    {

        // check if the requested container state is available and create a new instance
        if (in_array($state, EnumState::getStates())) {
            return new EnumState($state);
        }

        // throw a exception if the requested runlevel is not available
        throw new InvalidStateException(
            sprintf(
                'Requested state %s is not available (choose on of: %s)',
                $state,
                implode(',', EnumState::getStates())
            )
        );
    }