public static function get($containerState)
    {

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

        // throw a exception if the requested runlevel is not available
        throw new InvalidContainerStateException(
            sprintf(
                'Requested container state %s is not available (choose on of: %s)',
                $containerState,
                implode(',', ContainerStateKeys::getContainerStates())
            )
        );
    }